地理的に近い場所で S3 Transfer Acceleration を使った場合、転送速度を早くすることはできるか
東京リージョンのバケットからのオブジェクトのダウンロード速度を早くしたいという要望がありました。 端末は日本にあり、距離的に近い場合でも S3 Transfer Acceleration を使うことで速度を早くすることができないか試してみました。
やってみた
S3 Transfer Acceleration は距離的に遠いリージョンにあるバケットに対し、エッジロケーションを利用できるエンドポイントを作成し、そちらにアクセスすることで高速化できるサービスです。
以下が Transfer Acceleration のドキュメントになります。
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/transfer-acceleration.html
地理的に近いところであれば速度向上につながらないとは思いましたが、実際はどうなのか検証してみました。
# time aws s3 cp s3://test154782/Dummy-10MB.txt ./ download: s3://test154782/Dummy-10MB.txt to ./Dummy-10MB.txt real 0m2.595s user 0m1.207s sys 0m0.259s # time aws s3 cp s3://test154782/Dummy-10MB.txt ./ download: s3://test154782/Dummy-10MB.txt to ./Dummy-10MB.txt real 0m2.368s user 0m1.102s sys 0m0.290s # time aws s3 cp s3://test154782/Dummy-10MB.txt ./ download: s3://test154782/Dummy-10MB.txt to ./Dummy-10MB.txt real 0m2.621s user 0m1.350s sys 0m0.219s # time aws s3 cp s3://test154782/Dummy-10MB.txt ./ --endpoint-url https://s3-accelerate.amazonaws.com download: s3://test154782/Dummy-10MB.txt to ./Dummy-10MB.txt real 0m2.629s user 0m1.472s sys 0m0.303s # time aws s3 cp s3://test154782/Dummy-10MB.txt ./ --endpoint-url https://s3-accelerate.amazonaws.com download: s3://test154782/Dummy-10MB.txt to ./Dummy-10MB.txt real 0m2.421s user 0m1.315s sys 0m0.197s # time aws s3 cp s3://test154782/Dummy-10MB.txt ./ --endpoint-url https://s3-accelerate.amazonaws.com download: s3://test154782/Dummy-10MB.txt to ./Dummy-10MB.txt real 0m2.383s user 0m1.223s sys 0m0.313s
上記の結果通り、地理的に近いと意味が無さそうですね。
やはり S3 からのダウンロードを早くするには、処理を並列化する等の対応が必要なようです。
最後に
日本から日本では意味がありませんでしたが、海外リージョンにあるバケットとのやり取りの際にはかなりの高速化が図れるので、
ユースケースにある場合は、Transfer Acceleration の利用は検討できるものと思います。